home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / wasm201.arc / PTEST.ASM < prev    next >
Assembly Source File  |  1988-07-17  |  2KB  |  55 lines

  1.  Title 'Wolfware Assembler Sample', 'Pascal Printer Function'
  2.  
  3. ;===============================================;
  4. ;  Turbo Pascal Printer Function Version 1.00   ;
  5. ;                                               ;
  6. ; This program is a machine language printer    ;
  7. ; routine for Turbo Pascal.  This routine       ;
  8. ; creates a function that returns true if the   ;
  9. ; first parallel printer does not exist or is   ;
  10. ; not ready.                                    ;
  11. ;                                               ;
  12. ; Assuming that the file is assembled to        ;
  13. ; PRINT.COM, the routine should be declared in  ;
  14. ; a Pascal program in the following manner:     ;
  15. ;                                               ;
  16. ;   FUNCTION PRINTER_ERROR:BOOLEAN;             ;
  17. ;     EXTERNAL 'PRINT.COM';                     ;
  18. ;                                               ;
  19. ; Having done so, PRINTER may be used as a      ;
  20. ; normal Pascal function.  Example:             ;
  21. ;                                               ;
  22. ;   IF PRINTER_ERROR THEN                       ;
  23. ;     WRITELN ('Printer is not ready');         ;
  24. ;                                               ;
  25. ; Uses the printer BIOS routine.  Assumes that  ;
  26. ; all relevant registers will be saved (as they ;
  27. ; should be with an IBM or truly compatible     ;
  28. ; BIOS).                                        ;
  29. ;===============================================;
  30.  
  31.  Proc Near
  32.  
  33. ;----- equates
  34.  
  35. Prn_Number Equ 0         ;parallel printer number
  36. Error_Bits Equ 00101001b ;printer error bits (must not be set)
  37. Ready_Bits Equ 10010000b ;printer ready bits (must be set)
  38.  
  39. ;----- get printer status
  40.  
  41.  Mov Ah, 2              ;function number
  42.  Mov Dx, Prn_Number     ;printer number
  43.  Int 17h                ;execute
  44.  
  45. ;----- test printer status
  46.  
  47.  Mov Al, Ah
  48.  And Al, Error_Bits     ;mask out error bits
  49.  And Ah, Ready_Bits     ;mask out ready bits
  50.  Xor Ah, Ready_Bits     ;set missing ready bits
  51.  Or Al, Ah              ;combine all error bits and set ZF flag
  52.  Ret
  53.  Endp                   ;main program
  54.  
  55.